package com.zhengbing.tj.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zhengbing.tj.entity.LoginRecord;

/**
 * 登录记录服务接口
 * 提供用户登录登出记录的相关操作
 * @author zhengbing
 * @date 2025-07-25
 */
public interface LoginRecordService extends IService<LoginRecord> {
    /**
     * 记录用户登录信息
     * @param userId 用户ID
     * @param ipAddress IP地址
     * @param deviceInfo 设备信息
     * @return 登录记录ID
     */
    Long recordLogin(Long userId, String ipAddress, String deviceInfo);

    /**
     * 记录用户登出信息
     * @param userId 用户ID
     */
    void recordLogout(Long userId);

    /**
     * 根据登录记录ID查询登录记录
     * @param recordId 登录记录ID
     * @return 登录记录
     */
    LoginRecord getLoginRecordById(Long recordId);

    /**
     * 根据用户ID查询最新的登录记录
     * @param userId 用户ID
     * @return 登录记录
     */
    LoginRecord getLatestLoginRecordByUserId(Long userId);

    /**
     * 根据token更新登录状态
     * @param token 登录token
     * @param status 状态(0-登出,1-登录)
     * @return 是否更新成功
     */
    boolean updateStatusByUserId(Long userId, Integer status);
}
